// 请求常量
export const api = {
  baseUrl: '/api',
  code:{
    SUCCESS: 200,
    FAIL: 500,
    NOTLOGIN: 401
  },
  msg: {
    SUCCESS: '请求成功',
    FAIL: '请求失败，请稍后重试',
    NOTLOGIN: '用户信息验证失败，请重新登录',
    DEFAULT: '系统未知错误，请联系管理员'
  },
  common: {
    pageSize: 6,
    // 算法平台下拉数组
    systems: [
      { id: 'WINDOWS', name: 'Windows' },
      { id: 'ANDROID', name: 'Android' }
    ],
    taskStatus: [
      { label: '初始化', value: 0 },
      { label: '生成中', value: 1 },
      { label: '已生成', value: 2 },
      { label: '失败', value: 3 },
    ],
    status: [
      { label: '启用', value: 1 },
      { label: '未启用', value: 0 }
    ],
    defaults: [
      { label: '否', value: 0 },
      { label: '是', value: 1 }
    ]
  },
  module: {
    // 参数
    parameter: {
      // 是否关联选项
      relates: [
        { value: 0, label: '否' },
        { value: 1, label: '是' }
      ],
      // 参数类型
      type: [
        { value: 0, label: '枚举' },
        { value: 1, label: '数值' },
        { value: 2, label: '固定值' }
      ],
      typeDes: {
        ENUM: 0,
        NUMBER: 1,
        FIXED: 2
      }
    }
  },
  algo: {
    status: [
      { label: '初始化', value: 0 },
      { label: '已启动', value: 1 },
      { label: '执行中', value: 2 },
      { label: '已完成', value: 3 },
      { label: '执行失败', value: 4 },
    ],
    // 是否高级模式
    advances: [
      { value: 0, label: '否' },
      { value: 1, label: '是' }
    ],
  },
  strategy: {
    status: [
      { label: '禁用', value: 0 },
      { label: '启用', value: 1 }
    ],
    nodeType: {
      START: 'start',
      STEP: 'step',
      END: 'end'
    },
    stepType: {
      START: 0,
      STEP: 2,
      END: 1
    },
    nodeTypes: [
      { label: '起点', value: 0 },
      { label: '一般', value: 2 },
      { label: '终点', value: 1 }
    ],
    relations: [
      { label: '且', value: 'and' },
      { label: '或', value: 'or' }
    ],
    // 步骤选项是否可以终结流程选择数组
    ends: {
      FALSE: 0,
      TRUE: 1
    },
    operators: [
      { label: '等于', value: 'eq' },
      { label: '不等于', value: 'neq' }
    ],
    // 参数来源数组
    paramsSources: [
      { label: '选项', value: 0 },
      { label: '固定值', value: 1}
    ],
    // 参数类型
    paramsTypes: [
      { label: '常量', value: 0 }
    ]
  },
  user: {
    status: [
      { label: '正常', value: 0 },
      { label: '停用', value: 1 }
    ],
    types: [
      { label: '图像', value: 0 },
      { label: '音频', value: 1 },
      { label: '视频', value: 1 }
    ]
  },
  // 系统平台类别
  sysType: {
    IMAGE: 1,
    AUDIO: 2,
    VIDEO: 3,
    OTHER: 4
  },
  upload: {
    // 通用上传大小限制
    // commonSizeLimit: 100 * 1024 * 1024,
    commonSizeLimit: 500 * 1024 * 1024,
    // 静态链接库上传限制大小
    staticLinkLimit: 20 * 1024 * 1024,
    // 源码上传限制大小
    sourceCodeLimit: 20 * 1024 * 1024
  },
  // 根据请求code获取对应msg todo - 这里函数待修改
  getMsg(code){
    let message = this.msg.DEFAULT;
    const codeEntries = Object.entries(this.code);
    const findCode = codeEntries.find(codeItem => codeItem[1] === code);
    if (findCode) {
      message = this.msg[findCode[0]];
    }
    return message;
  }
};

// 全局常量对象
export const global = {
  // 项目标题
  projectTitle: '隐写算法组合生成平台',
  // 用户角色常量表
  roles: {
    SUPER: '0',
    ADMIN: '1',
    DEVELOPER: '2',
    USER: '3'
  },
  roleKeys: [
    { label: '超级管理员', value: '0' },
    { label: '管理员', value: '1' },
    { label: '开发者', value: '2' },
    { label: '用户', value: '3' }
  ],
  // 通用消息信息
  message: {
    validFail: '当前输入项不符合输入规则，请核对！'
  },
  modal: {
    IMAGE: 'image',
    VIDEO: 'video',
    AUDIO: 'audio'
  }
}